package springcloud.controller;

import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import springcloud.entity.Member;
import springcloud.entity.Result;
import springcloud.service.MemberService;

import javax.annotation.Resource;

@SuppressWarnings("all")
@RestController
@Slf4j
public class MemberController {

    @Resource
    private MemberService memberService;

    /**
     * 编写方法，完成数据添加
     * 1. 前端如果是以json格式来发送添加信息furn， 那么需要使用 @RequestBody
     * , 才能将数据封装到对应的bean。同时保证http的请求头的 content-type 是对应的 application/json
     * 2. 如果前端是以表单形式【或地址栏参数形式】提交数据，会自动进行对象参数封装，不需要使用 @RequestBody。
     * 同时保证http请求头的 content-type 是对应的 multipart/form-data
     * @param member
     * @return
     */
    @PostMapping("/member/save")
    public Result save(@RequestBody Member member) {
        log.info("member_provider_consumer member={}", member);
        int affected = memberService.save(member);
        if (affected > 0) {   // 保存成功
            return Result.success("member-service-nacos-provider-10006 添加会员成功", affected);
        } else {
            return Result.error("401", "添加会员失败");
        }

    }

    /**
     * 根据id查询会员信息。
     * 使用url占位符+@PathVariable
     * @param id
     * @return
     */
    @GetMapping("/member/query/{id}")
    public Result queryMemberById(@PathVariable("id") Long id) {
        Member member = memberService.queryMemberById(id);
        if (member != null) {
            return Result.success("member-service-nacos-provider-10006 查询会员成功", member);
        } else {
            return Result.error("402", "ID= " + id + "不存在");
        }
    }
}
